System and method for re-orderable nonlinear echo processing

ABSTRACT

An image processing system according to an implementation of the invention includes a plurality of signal processing modules ( 210, 212, 214, 216, 218, 220, 222, 224, 226 ) inline in a data stream receiving signals. The signal processing modules include input multiplexers ( 234   a - 234   i ) adapted to control an order of or bypassing of processing by the signal processing modules. The signal processing modules may be implemented as hardware-based, nonlinear signal processing modules, such as log compress, decimation, compounding, blending, edge enhancement, automatic gain control, BHNS, lateral, or persistence filters.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to ultrasound systems and, in particular, an improved system and method for nonlinear echo processing.

[0003] 2. Description of the Related Art

[0004] Techniques of nonlinear signal processing are known to provide significant benefits in imaging systems, such as ultrasound imaging systems. One method of implementing such techniques is through use of digital signal processors. However, nonlinear signal processing techniques tend to be relatively computationally-intensive. Consequently, in many cases, nonlinear processing is implemented in hardware, in application specific integrated circuits (ASICs).

[0005] It is often desirable to implement more than one type of type of nonlinear signal processing. In such cases, the order of processing can be important in ultimately determining the quality of the image. As can be appreciated, hardware or ASIC-based techniques are relatively inflexible and can be expensive. That is, much simulation of such systems is required prior to the development of the system. Even with such simulation, however, the hardware or ASIC may need to be redesigned or reworked to achieve the optimal result. Moreover, any change after development can be met only with a new release of the product.

[0006] As such, there is a need for an improved system and method for nonlinear signal processing.

SUMMARY OF THE INVENTION

[0007] These and other problems in the prior art are overcome in large part by a system and method according to the present invention. An ultrasound system according to one implementation of the invention includes transmit and receive circuitry for transmitting and receiving ultrasound signals; and a plurality of signal processing modules inline in a data stream receiving the ultrasound signals. The signal processing modules include input multiplexers adapted to control an order of processing by the plurality of signal processing modules. The inline signal processing modules may be bypassed by the use of the multiplexers, as well. Further, the signal processing modules may be implemented as hardware-based nonlinear signal processing modules.

[0008] An image processing system according to an implementation of the invention includes a plurality of signal processing modules inline in a data stream receiving signals. The signal processing modules include input multiplexers adapted to control an order of or bypassing of processing by the signal processing modules. The signal processing modules may be implemented as hardware-based, nonlinear signal processing modules, such as log compress, decimation, compounding, blending, edge enhancement, automatic gain control, black hole noise spike, lateral, or persistence filters.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] A better understanding of the invention is obtained when the following detailed description is considered in conjunction with the following drawings in which:

[0010]FIG. 1 is a block diagram of an ultrasound system according to an implementation of the invention;

[0011]FIG. 2 is a block diagram of a nonlinear signal processor according to an implementation of the invention;

[0012]FIG. 3 is a diagram of a multiplexer nonlinear processor pair according to an implementation of the invention; and

[0013]FIG. 4 is a diagram schematically illustrating operation of an implementation of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0014] FIGS. 1-4 illustrate an improved system and method for echo processing. An ultrasound system according to one implementation of the invention includes transmit and receive circuitry for transmitting and receiving ultrasound signals; and a plurality of signal processing modules inline in a data stream receiving the ultrasound signals. The signal processing modules include input multiplexers adapted to control an order of processing by the plurality of signal processing modules. The inline signal processing modules may be bypassed by the use of the multiplexers, as well. Further, the signal processing modules may be implemented as hardware-based nonlinear signal processing modules.

[0015] Turning now to FIG. 1, a block diagram of an ultrasound imaging system according to an embodiment of the present invention is illustrated. Ultrasound systems suitable for use with the teachings of the present invention are well known. One such system is the Elegra, available from Siemens Ultrasound, Inc., Issaquah, Wash.

[0016] The ultrasound imaging system 100 of FIG. 1 includes a transducer probe 102 configured to radiate and receive ultrasound waves. The transducer probe 102 is coupled to a transmit/receive circuit 104 and a BIM mode processor 106. The B/M mode processor processes both B and M mode vectors. The B/M mode processor 106 is coupled to a scan converter 110, which provides an output to a display device 112. A controller 108 is further coupled to control the various devices. It is noted that, while the various functions are illustrated as being implemented as discrete hardware components, they may be implemented in varying degrees of integration as ASICs or microprocessors, or software. Thus, FIG. 1 is exemplary only.

[0017] As shown, the transmit/receive circuit 104 includes a gated oscillator 114 and a gated receiver 116. The system controller 108 provides a user interface (e.g., control panel, display menu, keyboard and the like) (not shown) and generally controls system operations. In operation, the system controller 108 triggers the gated oscillator 114 to generate electrical signals for output to the transducer probe 102. The transducer probe 102 converts the electrical signals into an ultrasound transmit pattern.

[0018] Typically, the transducer is positioned adjacent to and in contact with a patient's anatomy. The transmit pulse wave pattern propagates into the patient's anatomy where it is refracted, absorbed, dispersed and reflected. The signal components which are reflected back to the transducer probe 102 are sensed and converted back into electrical signals. The signals are then input to the receiver 116 which amplifies the signals.

[0019] The B and M mode signals are transferred to the B/M mode processor 106 which is described in greater detail below. The output from the B/M mode processor 106 is then provided to a scan converter 110. The scan converter 110 is provided because the received signals are in a vector domain or polar coordinates, whereas the display device is in raster domain or rectangular coordinates. The scan converter 110 thus converts the received polar coordinate image into raster coordinate display and interpolates outputs for those raster pixel locations which do not exactly coincide with the received vector points. The scan converter 110 outputs the image to a display device 112.

[0020] According to an implementation of the present invention, the B/M mode processor 106 includes a plurality of reorderable signal processing modules. Turning now to FIG. 2, a block diagram of the B/M mode processor 106 is shown in greater detail. As shown, in phase and quadrature echo signals are received into I/Q buffers 202. The data signals are then provided to a linear signal processing block 201. The linear signal processing block 201 may include a complex dynamic filter 204, an interpolation filter 206, and a magnitude calculator 206. The data signals are then provided to a nonlinear signal processing block 203. As shown, the nonlinear signal processing block 203 includes a plurality of nonlinear signal processing modules 210, 212, 214, 216, 218, 220, 222, 224, and 226. In the implementation illustrated, the nonlinear signal processing modules include log compress 210, multiphase multirate decimation 212, compounding 214, blending 216, edge enhancement 218, automatic gain control 220, two dimensional black hole noise removal 222, lateral 224, and persistence filters 226. Also included are an external persistence RAM 228, a multiplexer 230, and an output buffer 232. It is noted that in alternate implementations, other, more or fewer nonlinear signal processing modules may be provided. Further, the nonlinear signal processing modules may be provided in differing orders. Thus, the figures are exemplary only. Details on exemplary specific filters are provided in the attached Appendix.

[0021] The nonlinear signal processing modules each include an input multiplexer 234 a-234 i. In the implementation illustrated, the input multiplexers 234 a-234 i are 9-to-1 multiplexers, where nine (9) is the number of nonlinear signal processing modules it may be desired to be re-ordered. A multiplexer-processing module pair is shown in greater detail in FIG. 3. As shown, the pair includes a 9-to-1 multiplexer and a nonlinear signal processing element.

[0022] Turning now to FIG. 4, a diagram illustrating operation of an implementation of the invention is schematically illustrated. For convenience, only two signal processing modules A, B, and three input multiplexers M1, M2, M3 are shown. The multiplexer M1 includes inputs 450, 452; the multiplexer M2 includes inputs 456, 458. The nonlinear signal processing module A includes an input 454; the nonlinear signal processing module B includes an input 460. Data are input along line 402 to the input 450 of multiplexer M1 and via line 404 to the input 458 of multiplexer M2. The output of the multiplexer M1 couples via line 408 to the input 454 of the nonlinear signal processing module A. The output of the nonlinear signal processing module A couples via line 410 to the input 456 of the multiplexer M2, as well as to the input of the multiplexer M3 via line 412. The output of the multiplexer M2 couples via line 414 to the input 460 of the nonlinear signal processing module B. Finally, the output of the nonlinear signal processing module B couples via line 406 to the input 452 of the multiplexer M1.

[0023] In operation, the controller 108 (e.g., FIG. 1) controls the select inputs of the multiplexers M1, M2. Thus, the controller 108 selects whether the nonlinear processing module A or the nonlinear processing module B processes the signal stream first. The controller 108 is programmable by the user in a known manner to select which of the nonlinear signal processing modules is first in the chain.

[0024] If the nonlinear signal processing module A is to process the signal first, then controller controls operation of the multplexers M1, M2 such that the data are provided along line 402 to the input 450 of multiplexer M1, pass the multiplexer 450 input to nonlinear signal processing block A. The output of the nonlinear signal processing block A is provided to the input 456 of the multplexer M2. The multiplexer M2 passes the signal to the nonlinear signal processing block B.

[0025] Similarly, if the nonlinear signal processing block B is to operate on the signal first, then the controller controls operation of the multiplexers M1, M2 such that the input 450 of multiplexer M1 is blocked, and the input 456 of the multiplexer M2 is blocked. Thus, the signal is received along line 402 and passes aloing line 404 to the input 458 of the multiplexer M2. The multiplexer M2 passes the signal along line 414 to the nonlinear signal processing block B. The signal is processed by the nonlinear signal processing block B and passes along line 406 to the input 452 of the multiplexer M1. The multiplexer M1 then passes the signal to the nonlinear signal processing block A. The nonlinear signal processing block A processes the signal and outputs it on line 410. The signal does not enter multiplexer M2, but passes on line 412 to the next multiplexer M3.

[0026] The invention described in the above detailed description is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications and equivalents as can reasonably be included within the spirit and scope of the appended claims.

APPENDIX COMPLEX DYNAMIC FILTERING

[0027] The incoming I and Q data will be processed with a Complex Dynamic Filter. This filter is subdivided into four unique functions which include:

[0028] I/Q buffer FIFOs.

[0029] multi-tap Complex, Dynamic, Multirate Filter.

[0030] Interpolation Filter.

[0031] I/Q Buffer FIFOs

[0032] Due to the decimation of the complex filter the output data rate can be greatly reduced from the input rate. Thus the input data needs to be buffered. To perform this a double buffered pair of 1024 word FIFOs are used. Once one set is loaded, filtering can begin and the other set is loaded in the background.

COMPLEX FILTER

[0033] Filter parameters are as follows: Filter Parameters Input Rate Up to 40 MHz Output Rate Input Rate / Decimation Rate Decimation Rate 1 to 8 in integer increments Internal Filter Blocks 4 (for I, Q, (I to Q) and (Q to I))

INTERPOLATION FILTER

[0034] Fixed filter used to interpolate between complex filter output data. Used for complex output rates of 20 MHz or less. This filter simplifies the complex decimation filter and reduces artifacts caused by non-linear processing.

MAGNITUDE CALCULATION

[0035] The system will find the magnitude of the filtered I and Q data. This is done by simply squaring I and Q, adding them together and taking the square root.

LOG COMPRESSION

[0036] The log compression block will implement the following transfer function $Y = {Y_{\max} \cdot \frac{\log \left( {g\quad {X/q}} \right)}{\log \left( {X_{\max}/q} \right)}}$

[0037] where

[0038] g=Log gain

[0039] X=Input to Log compressor:

[0040] X_(max)=Maximum input value

[0041] q=Dynamic range control parameter defined as $q = \frac{X_{\max}}{10^{D\quad {B/20}}}$

[0042] Y=Log compressor output

[0043] Y_(max)=Maximum output value

[0044] DB in the above equation represents the compression dynamic range in dB. For example, if dynamic range of 30 dB is selected, DB will be set to 30.

[0045] The Log block shall be designed to realize the transfer function described above and meet the following requirements:

[0046] Log conversion error:

[0047] >Error fluctuation should not be greater than 1 bit.

[0048] Range of DB 90˜30:

[0049] All inputs to the log compression block are programmable to allow for flexibility.

[0050] The processor shall have the ability to combine up to four interleaved vectors at one time with as many as 16 focal zones. There are two identical blocks in the device which may be programmed to perform either blending or compounding. These blocks are referred to as Combining0 and Combining1.

MULTIRATE, MULTIPHASE DECIMATION FILTER

[0051] This filter is used for the purpose of adjustment of number of range gates .

[0052] Filter parameters are as follows: Multirate, Multiphase Filter Parameters Input Rate Up to 40 MHz Output Rate Input Rate / Decimation Rate Decimation Rate 1 to 4 in 0.125 increments Phases 8 Internal Filter Blocks 1

FOCAL ZONE BLENDING (COMBINING)

[0053] The processor shall have the ability to blend interleaved vectors with as many as 16 focal zones. The blending process is a range dependent, weighted sum of multiple vectors collected along the same vector line. In general, the transmit focus depth is different for each of the summed vectors. By combining these vectors, a single vector with multiple transmit foci can be achieved. Blending does lower the effective frame rate. The C_(m)(n)'s for each depth will add to one. This will negate the need for any gain circuitry on the output of this functional block. Multiple buffers are used to blend as many as 16 interleaved focal zones.

[0054] Each focal zone will have a start and stop register to specify where it is stored in the buffers.

[0055] The following equation is used for blending. ${B(n)} = {\sum\limits_{m = 0}^{M - 1}{{V_{m}(n)}{C_{m}(n)}}}$

[0056] where

[0057] n=depth index

[0058] m=focal depth index

[0059] M=total number of transmit focal depths

[0060] V_(m)(n)=vector data for m'th transmit focal depth

[0061] C_(m)(n)=weighting coefficient for m'th vector

[0062] B(n)=blended output vector Focal Zone Blending and Compounding Parameters Number of tables 1 for each focal zone Number of focal zones 16 maximum

COMPOUNDING

[0063] The processor shall have the ability to compound interleaved vectors with as many as 16 focal zones. Compounding is identical to blending with the following additional features:

Y(n)=Max(V _(m)(n)C _(m)(n))

[0064] For

m=0 to M−1

[0065] and

Y(n)=Min(V _(m)(n)C _(m)(n))

[0066] For

m=0 to M−1

[0067] where:

[0068] n=depth index

[0069] m=focal depth index

[0070] M=Total number of compounding components

[0071] V_(m)(n)=vector data for m'th transmit focal depth

[0072] C_(m)(n)=weighting coefficient for m'th vector

[0073] Y(n)=compounded output vector

[0074] The blending and compounding share the same buffers and 16 coefficient weight tables. These memories are allocated to one block or the other.

EDGE ENHANCEMENT

[0075] The edge enhancement filter is used to emphasize the high frequency component of the detected echo signal in the axial direction. This results in an increased emphasis of the tissue boundaries. The filter can be selected on a vector to vector basis (by the type of vector) from an available set of filters stored in the processor. The output of the AEE filter will always be positive. Should a negative number be detected, that output sample will be forced to zero. An overflow result will be clamped to the maximum value.

AGC

[0076] Auto Gain Control (AGC) reduces gains to avoid saturation when strong echo signal is received. Circuit integrates output signals and reduces gains of excess of bias level by negative feedback to reinforce edges.

[0077] Functions

[0078] Output signal limit processing.

[0079] Integration after the lower level bias of the display and the upper level limit through the first LPF.

[0080] Feedback gain processing after integration.

[0081] Bias processing after feedback gain.

[0082] Negative signal limit processing after bias.

[0083] Negative feedback delay processing to input signal after negative signal limit.

BLACK HOLE AND NOISE SPIKE FILLING

[0084] Grey scale images display a characteristic speckle pattern which naturally contain null regions which appear as dark areas or black holes on the display. This problem can be alleviated through the use of black hole filling which fills in the nulls to reduce the brightness change as a vector transverses a null. The BHF and NSF use different logic to determine if a sample should be replaced and by what value. BHFINSF will be done in 1-D and 2-D mode.

[0085] Filtering is a two step process, first the black hole and noise spike sections determine if a sample should be replaced according to the algorithms shown below . The result is a replacements value and a flag indicating if the value is other than the current unchanged sample. This is the center word of the 3 by 3 filter kernel. Next, the two flag bits are used as an address to select 3 bits from a 4 by 3 bit LUT. The three bits are used to select one of five sources for the final output from the filter.

[0086] All internal calculations will clamp to zero if the result is negative and to maximum if overflow.

BLACK HOLE FILLING ALGORITHM

[0087] One Dimensional Black Hole Filtering (BHF2D=0) $g_{n,m}\begin{matrix}  \uparrow & \quad & g_{n,m} & {{if}\quad f_{b}} & 0 \\ \rightarrow & \quad & \quad & \quad & \quad \\  \downarrow & {\Delta \quad g_{n,m}} & {\left( {1\quad \Delta} \right)h_{n,m}} & {{if}\quad f_{b}} & 1 \end{matrix}$

[0088] where, n is for axial index and m is for lateral index, and $f_{b}\begin{matrix}  \uparrow & {0,} & {{if}\quad g_{n,m}\tau \quad h_{n,m}} \\ \rightarrow & \quad & \quad \\  \downarrow & {1,} & {otherwise} \end{matrix}$ and $h_{n,m} = \left\{ \begin{matrix} \begin{matrix} {\frac{g_{{n - 1},m} + g_{{n + 1},m}}{2} - t_{a}} & {(A)\quad {Axial}\quad {Average}\quad {Only}} \end{matrix} \\ {{{{if}\quad {AxialLateralSel}} = 1},{{AxialLateralAverage} = 1}} \\ \begin{matrix} {\frac{g_{n,{m - 1}} + g_{n,{m + 1}}}{2} - t_{l}} & {(B)\quad {Lateral}\quad {Average}\quad {Only}} \end{matrix} \\ {{{{if}\quad {AxialLateralSel}} = 0},{{AxialLateralAverage} = 1}} \\ \begin{matrix} {\min \left( {{g_{{n - 1},m} - t_{a}},{g_{{n + 1},m} - t_{a}}} \right)} & {(C)\quad {Axial}\quad {Only}} \end{matrix} \\ {{{{if}\quad {AxialLateralSel}} = 1},{{AxialLateralAverage} = 0}} \\ \begin{matrix} {\min \left( {{g_{n,{m - 1}} - t_{l}},{g_{n,{m + 1}} - t_{l}}} \right)} & {(D)\quad {Lateral}\quad {Only}} \end{matrix} \\ {{{{if}\quad {AxialLateralSel}} = 0},{{AxialLateralAverage} = 0}} \end{matrix} \right.$

[0089] t_(d) is the axial black hole filter threshold value, t_(l) is for lateral threshold value, n is depth index, m is vector index, and g(n,m) is the sample value. Equations above can be used for the one dimensional filtering.

[0090] Black Hole Filtering Example

[0091] Two Dimensional Black Hole Filtering (BHF2D=1) $g_{n,m}\begin{matrix}  \uparrow & \quad & g_{n,m} & {{if}\quad f_{b}} & 0 \\ \rightarrow & \quad & \quad & \quad & \quad \\  \downarrow & {\Delta \quad g_{n,m}} & {\left( {1\quad \Delta} \right)h_{n,m}} & {{if}\quad f_{b}} & 1 \end{matrix}$

[0092] where, n is for axial index and m is for lateral index, and $f_{b}\begin{matrix}  \uparrow & 0 & {{if}\quad g_{n,m}\tau \quad h_{n,m}} \\ \rightarrow & \quad & \quad \\  \downarrow & 1 & {otherwise} \end{matrix}$ and $h_{n,m} = \left\{ \begin{matrix} \begin{matrix} {\frac{g_{{n - 1},m} + g_{{n + 1},m} + g_{n,{m - 1}} + g_{n,{m + 1}}}{4} - t_{a\quad l}} & {(A)\quad \left( {2D\quad {Processing}} \right)} \end{matrix} \\ {{{if}\quad 2D\quad A\quad v\quad e\quad r\quad a\quad g\quad e} = 1} \\ \begin{matrix} {\min \left( {{\frac{g_{{n - 1},m} + g_{{n + 1},m}}{2} - t_{a}},{\frac{g_{n,{m - 1}} + g_{n,{m + 1}}}{2} - t_{l}}} \right)} & {(B)\quad \left( {{{{Less}\quad {Axial}}\quad\&}\quad {Lateral}} \right)} \end{matrix} \\ {{{{if}\quad 2D\quad A\quad v\quad e\quad r\quad a\quad g\quad e} = 0},{{AxialLateralAverage} = 1},{{MinMaxSel} = 1}} \\ \begin{matrix} {\max \left( {{\frac{g_{{n - 1},m} + g_{{n + 1},m}}{2} - t_{a}},{\frac{g_{n,{m - 1}} + g_{n,{m + 1}}}{2} - t_{l}}} \right)} & {(C)\quad \left( {{{{More}\quad {Axial}}\quad\&}\quad {Lateral}} \right)} \end{matrix} \\ {{{{if}\quad 2D\quad A\quad v\quad e\quad r\quad a\quad g\quad e} = 0},{{AxialLateralAverage} = 1},{{MinMaxSel} = 0}} \\ \begin{matrix} {\min \left( {{\min \left( {{g_{{n - 1},m} - t_{a}},{g_{{n + 1},m} - t_{a}}} \right)},{\min \left( {{g_{n,{m - 1}} - t_{l}},{g_{n,{m + 1}} - t_{l}}} \right)}} \right)} & {(D)\quad ({Less})} \end{matrix} \\ {{{{if}\quad 2D\quad A\quad v\quad e\quad r\quad a\quad g\quad e} = 0},{{AxialLateralAverage} = 0},{{MinMaxSel} = 1}} \\ \begin{matrix} {\max \left( {{\min \left( {{g_{{n - 1},m} - t_{a}},{g_{{n + 1},m} - t_{a}}} \right)},{\min \left( {{g_{n,{m - 1}} - t_{l}},{g_{n,{m + 1}} - t_{l}}} \right)}} \right)} & {(E)\quad ({More})} \end{matrix} \\ {{{{if}\quad 2D\quad A\quad v\quad e\quad r\quad a\quad g\quad e} = 0},{{AxialLateralAverage} = 0},{{MinMaxSel} = 0}} \end{matrix} \right.$

[0093] Note, MinMaxSel can be the same bit as AxialLateralSel for 1D.

NOISE SPIKE FILTERING

[0094] Greyscale images always have random noise components, which are often noticeable where the signal levels are low, such as in anechoic cystic regions. The NSF shall provide a means of suppressing high amplitude noise spikes by using lateral neighbors to identify isolated noise spikes and compute the fill-in value.

[0095] One Dimensional Noise Spike Filtering for B Mode (NSF2D=0) $g_{n,m}\begin{matrix}  \uparrow & \quad & g_{n,m} & {{if}\quad f_{n}} & 0 \\ \rightarrow & \quad & \quad & \quad & \quad \\  \downarrow & {\Delta \quad g_{n,m}} & {\left( {1\quad \Delta} \right)h_{n,m}} & {{if}\quad f_{n}} & 1 \end{matrix}$ where $f_{b}\begin{matrix}  \uparrow & {0,} & {{if}\quad g_{n,m}\delta \quad h_{n,m}} \\ \rightarrow & \quad & \quad \\  \downarrow & {1,} & {otherwise} \end{matrix}$ and $h_{n,m} = \left\{ \begin{matrix} {{\max \left( {g_{{n - 1},m},g_{{n + 1},m}} \right)} + {t_{a}\quad (A)\quad {Axial}\quad {Only}}} \\ {{{if}\quad {AxialLateralSel}} = 1} \\ {{\max \left( {g_{n,{m - 1}},g_{n,{m + 1}}} \right)} + {t_{l}\quad (B)\quad {Lateral}\quad {Only}}} \\ {{{if}\quad {AxialLateralSel}} = 0} \end{matrix} \right.$

[0096] t_(a) is the NSF threshold in the axial dimension and t_(l) is the threshold in the lateral dimension, n is the depth index, m in the vector index, and g(n,m) is the n'th sample of the m'th vector.

NOISE SPIKE FILTERING EXAMPLE

[0097]

[0098] Two Dimensional Noise Spike Filtering (NSF2D=1) $g_{n,m}\begin{matrix}  \uparrow & \quad & g_{n,m} & {{if}\quad f_{n}} & 0 \\ \rightarrow & \quad & \quad & \quad & \quad \\  \downarrow & {\Delta \quad g_{n,m}} & {\left( {1\quad \Delta} \right)h_{n,m}} & {{if}\quad f_{n}} & 1 \end{matrix}$ where $f_{b}\begin{matrix}  \uparrow & {0,} & {{if}\quad g_{n,m}\delta \quad h_{n,m}} \\ \rightarrow & \quad & \quad \\  \downarrow & {1,} & {otherwise} \end{matrix}$ and $h_{n,m} = \left\{ \begin{matrix} {{\min \left( {{{\max \left( {g_{{n - 1},m},g_{{n - 1},m}} \right)} + t_{n}},{{\max \left( {g_{n,{m - 1}},g_{n,{m - 1}}} \right)} + t_{l}}} \right)}\quad (A)\quad ({More})} \\ {{{if}\quad {MinMaxSel}} = 1} \\ {{\max \left( {{{\max \left( {g_{{n - 1},m},g_{{n + 1},m}} \right)} + t_{n}},{{\max \left( {g_{n,{m - 1}},g_{n,{m + 1}}} \right)} + t_{l}}} \right)}\quad (B)\quad ({Less})} \\ {{{if}\quad {MinMaxSel}} = 0} \end{matrix} \right.$

[0099] with the variables defined as in the previous section.

BHF/NSF OUTPUT SELECTION

[0100] Code Selection 0 Current value 1 Black hole replacement 2 Noise spike renlacement 3 max(hole/noise replacement) 4 min(hole/noise replacement)

[0101] If the filter is to be switched from filtering to non-filtering mode, a delay must be inserted to allow the filter to flush it's buffers.

LATERAL FILTER

[0102] This filter is a multi tap filter in the lateral direction. It can be used as a smoothing or edge enhancement function. Four sets of coefficients, gain, and scale values are available and selected by two bits for each vector.

[0103] When programmed as an N tap filter, N vectors are needed for processing. The first (N−1)/2 incoming vectors will be stored and passed through the filter as the next (N−1)/2 vectors are received. Once the next vector is received processing will start and will continue for all vectors until the filter is told that it has received the last vector. After that vector is processed the filter will flush the remaining (N−1)/2 vectors.

[0104] Further details on lateral filtering are obtained from U.S. patent application Ser. No. 09/606,494 filed Jun. 29, 2000, which is hereby incorporated by reference in its entirety as if fully set forth herein.

PERSISTENCE

[0105] Echo persistence is a process wherein the output vector for a given vector index is a linear combination of the previous output vector at that index and the new input vector at that same index. The amount of persistence is a function of the difference between the new sample and the previous sample for the same vector index and depth. The Persistence algorithm is as follows:

V_(out)(k,m,n) aυV_(out)(k 1,m,n) (1 a)υV_(in)(k,m,n)

[0106] where

[0107] k=acoustic frame index

[0108] m=vector index

[0109] n=depth index

[0110] Vout(k,m,n)=k'th output of the n'th depth of the m'th vector index

[0111] Vin(k,m,n)=k'th input for the n'th depth of the m'th vector index

[0112] a=the persistence value, a real number between 0 and 1 

What is claimed is:
 1. An ultrasound system, comprising: transmit and receive circuitry for transmitting and receiving ultrasound signals; and a plurality of signal processing modules inline in a data stream receiving said ultrasound signals, said signal processing modules including input multiplexers adapted to control an order of processing by said plurality of signal processing modules.
 2. An ultrasound system in accordance with claim 1, said input multiplexers comprising bypass multiplexers for bypassing one or more of said signal processing modules.
 3. An ultrasound system in accordance with claim 2, said signal processing modules comprising nonlinear signal processing modules.
 4. An ultrasound system in accordance with claim 3, said nonlinear signal processing modules including at least one of log compress, decimation, compounding, blending, edge enhancement, automatic gain control, BHNS, lateral, or persistence filters.
 5. An image processing system, comprising: a plurality of signal processing modules inline in a data stream receiving signals, said signal processing modules including input multiplexers adapted to control an order of processing by said plurality of signal processing modules.
 6. An image processing system in accordance with claim 5, said input multiplexers comprising bypass multiplexers for bypassing one or more of said signal processing modules.
 7. An imaging system in accordance with claim 6, said signal processing modules comprising nonlinear signal processing modules.
 8. An imaging system in accordance with claim 7, said nonlinear signal processing modules including at least one of log compress, decimation, compounding, blending, edge enhancement, automatic gain control, BHNS, lateral, or persistence filters.
 9. An imaging system in accordance with claim 5, said signal processing modules comprising hardware signal processing modules.
 10. A method comprising: providing transmit and receive circuitry for transmitting and receiving ultrasound signals; and providing a plurality of signal processing modules inline in a data stream receiving said ultrasound signals, said signal processing modules including input multiplexers adapted to control an order of processing by said plurality of signal processing modules.
 11. A method in accordance with claim 10, said input multiplexers comprising bypass multiplexers for bypassing one or more of said signal processing modules.
 12. A method in accordance with claim 11, said signal processing modules comprising nonlinear signal processing modules.
 13. A method in accordance with claim 12, said nonlinear signal processing modules including at least one of log compress, decimation, compounding, blending, edge enhancement, automatic gain control, BHNS, lateral, or persistence filters amplitude data.
 14. A method according to claim 13, said signal processing modules comprising hardware signal processing modules.
 15. A method, comprising: providing a plurality of signal processing modules inline in a data stream receiving signals, said signal processing modules including input multiplexers adapted to control an order of processing by said plurality of signal processing modules.
 16. A method according to claim 15, said input multiplexers comprising bypass multiplexers for bypassing one or more of said signal processing modules.
 17. A method according to claim 16, said signal processing modules comprising nonlinear signal processing modules.
 18. A method according to claim 17, said nonlinear signal processing modules including at least one of log compress, decimation, compounding, blending, edge enhancement, automatic gain control, BHNS, lateral, or persistence filters.
 19. A method according to claim 18, said signal processing modules comprising hardware signal processing modules.
 20. A method comprising: receiving a plurality of data signals; processing said data signals with a plurality of signal processing modules; and multiplexing inputs of said signal processing modules to arrange an order of processing.
 21. A method according to claim 20, said multiplexing inputs comprising bypassing one or more of said signal processing modules.
 22. A method according to claim 21, said signal processing modules comprising hardware signal processing modules.
 23. A method according to claim 22, said signal processing modules comprising nonlinear signal processing modules. 